<!DOCTYPE html>
<html lang="en-us">
  <head>

    <meta http-equiv="content-type" content="text/html; charset=utf-8">
    
<meta charset="UTF-8">
<title>Remote clusters | Elasticsearch Guide [7.7] | Elastic</title>
<link rel="home" href="index.html" title="Elasticsearch Guide [7.7]">
<link rel="up" href="setup.html" title="Set up Elasticsearch">
<link rel="prev" href="restart-cluster.html" title="Full-cluster restart and rolling restart">
<link rel="next" href="setup-xpack.html" title="Set up X-Pack">
<meta name="DC.type" content="Learn/Docs/Elasticsearch/Reference/7.7">
<meta name="DC.subject" content="Elasticsearch">
<meta name="DC.identifier" content="7.7">
<meta name="robots" content="noindex,nofollow">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <script src="https://cdn.optimizely.com/js/18132920325.js"></script>
    <link rel="apple-touch-icon" sizes="57x57" href="/apple-icon-57x57.png">
    <link rel="apple-touch-icon" sizes="60x60" href="/apple-icon-60x60.png">
    <link rel="apple-touch-icon" sizes="72x72" href="/apple-icon-72x72.png">
    <link rel="apple-touch-icon" sizes="76x76" href="/apple-icon-76x76.png">
    <link rel="apple-touch-icon" sizes="114x114" href="/apple-icon-114x114.png">
    <link rel="apple-touch-icon" sizes="120x120" href="/apple-icon-120x120.png">
    <link rel="apple-touch-icon" sizes="144x144" href="/apple-icon-144x144.png">
    <link rel="apple-touch-icon" sizes="152x152" href="/apple-icon-152x152.png">
    <link rel="apple-touch-icon" sizes="180x180" href="/apple-icon-180x180.png">
    <link rel="icon" type="image/png" href="/favicon-32x32.png" sizes="32x32">
    <link rel="icon" type="image/png" href="/android-chrome-192x192.png" sizes="192x192">
    <link rel="icon" type="image/png" href="/favicon-96x96.png" sizes="96x96">
    <link rel="icon" type="image/png" href="/favicon-16x16.png" sizes="16x16">
    <link rel="manifest" href="/manifest.json">
    <meta name="apple-mobile-web-app-title" content="Elastic">
    <meta name="application-name" content="Elastic">
    <meta name="msapplication-TileColor" content="#ffffff">
    <meta name="msapplication-TileImage" content="/mstile-144x144.png">
    <meta name="theme-color" content="#ffffff">
    <meta name="naver-site-verification" content="936882c1853b701b3cef3721758d80535413dbfd">
    <meta name="yandex-verification" content="d8a47e95d0972434">
    <meta name="localized" content="true">
    <meta name="st:robots" content="follow,index">
    <meta property="og:image" content="https://www.elastic.co/static/images/elastic-logo-200.png">
    <link rel="shortcut icon" href="/favicon.ico" type="image/x-icon">
    <link rel="icon" href="/favicon.ico" type="image/x-icon">
    <link rel="apple-touch-icon-precomposed" sizes="64x64" href="/favicon_64x64_16bit.png">
    <link rel="apple-touch-icon-precomposed" sizes="32x32" href="/favicon_32x32.png">
    <link rel="apple-touch-icon-precomposed" sizes="16x16" href="/favicon_16x16.png">
    <!-- Give IE8 a fighting chance -->
    <!--[if lt IE 9]>
    <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
    <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
    <![endif]-->
    <link rel="stylesheet" type="text/css" href="/guide/static/styles.css">
  </head>

  <!--© 2015-2021 Elasticsearch B.V. Copying, publishing and/or distributing without written permission is strictly prohibited.-->

  <body>
    <!-- Google Tag Manager -->
    <script>dataLayer = [];</script><noscript><iframe src="//www.googletagmanager.com/ns.html?id=GTM-58RLH5" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
    <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= '//www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-58RLH5');</script>
    <!-- End Google Tag Manager -->

    <!-- Global site tag (gtag.js) - Google Analytics -->
    <script async src="https://www.googletagmanager.com/gtag/js?id=UA-12395217-16"></script>
    <script>
      window.dataLayer = window.dataLayer || [];
      function gtag(){dataLayer.push(arguments);}
      gtag('js', new Date());
      gtag('config', 'UA-12395217-16');
    </script>

    <!--BEGIN QUALTRICS WEBSITE FEEDBACK SNIPPET-->
    <script type="text/javascript">
      (function(){var g=function(e,h,f,g){
      this.get=function(a){for(var a=a+"=",c=document.cookie.split(";"),b=0,e=c.length;b<e;b++){for(var d=c[b];" "==d.charAt(0);)d=d.substring(1,d.length);if(0==d.indexOf(a))return d.substring(a.length,d.length)}return null};
      this.set=function(a,c){var b="",b=new Date;b.setTime(b.getTime()+6048E5);b="; expires="+b.toGMTString();document.cookie=a+"="+c+b+"; path=/; "};
      this.check=function(){var a=this.get(f);if(a)a=a.split(":");else if(100!=e)"v"==h&&(e=Math.random()>=e/100?0:100),a=[h,e,0],this.set(f,a.join(":"));else return!0;var c=a[1];if(100==c)return!0;switch(a[0]){case "v":return!1;case "r":return c=a[2]%Math.floor(100/c),a[2]++,this.set(f,a.join(":")),!c}return!0};
      this.go=function(){if(this.check()){var a=document.createElement("script");a.type="text/javascript";a.src=g;document.body&&document.body.appendChild(a)}};
      this.start=function(){var a=this;window.addEventListener?window.addEventListener("load",function(){a.go()},!1):window.attachEvent&&window.attachEvent("onload",function(){a.go()})}};
      try{(new g(100,"r","QSI_S_ZN_emkP0oSe9Qrn7kF","https://znemkp0ose9qrn7kf-elastic.siteintercept.qualtrics.com/WRSiteInterceptEngine/?Q_ZID=ZN_emkP0oSe9Qrn7kF")).start()}catch(i){}})();
    </script><div id="ZN_emkP0oSe9Qrn7kF"><!--DO NOT REMOVE-CONTENTS PLACED HERE--></div>
    <!--END WEBSITE FEEDBACK SNIPPET-->

    <div id="elastic-nav" style="display:none;"></div>
    <script src="https://www.elastic.co/elastic-nav.js"></script>

    <!-- Subnav -->
    <div>
      <div>
        <div class="tertiary-nav d-none d-md-block">
          <div class="container">
            <div class="p-t-b-15 d-flex justify-content-between nav-container">
              <div class="breadcrum-wrapper"><span><a href="/guide/" style="font-size: 14px; font-weight: 600; color: #000;">Docs</a></span></div>
            </div>
          </div>
        </div>
      </div>
    </div>

    <div class="main-container">
      <section id="content">
        <div class="content-wrapper">

          <section id="guide" lang="en">
            <div class="container">
              <div class="row">
                <div class="col-xs-12 col-sm-8 col-md-8 guide-section">
                  <!-- start body -->
                  <div class="page_header">
<strong>IMPORTANT</strong>: No additional bug fixes or documentation updates
will be released for this version. For the latest information, see the
<a href="../current/index.html">current release documentation</a>.
</div>
<div id="content">
<div class="breadcrumbs">
<span class="breadcrumb-link"><a href="index.html">Elasticsearch Guide [7.7]</a></span>
»
<span class="breadcrumb-link"><a href="setup.html">Set up Elasticsearch</a></span>
»
<span class="breadcrumb-node">Remote clusters</span>
</div>
<div class="navheader">
<span class="prev">
<a href="restart-cluster.html">« Full-cluster restart and rolling restart</a>
</span>
<span class="next">
<a href="setup-xpack.html">Set up X-Pack »</a>
</span>
</div>
<div class="chapter">
<div class="titlepage"><div><div>
<h2 class="title">
<a id="modules-remote-clusters"></a>Remote clusters<a class="edit_me edit_me_private" rel="nofollow" title="Editing on GitHub is available to Elastic" href="https://github.com/elastic/elasticsearch/edit/7.7/docs/reference/modules/remote-clusters.asciidoc">edit</a>
</h2>
</div></div></div>
<p>The <em>remote clusters</em> functionality enables you to establish unidirectional
connections to a remote cluster. Remote clusters are required for
<a class="xref" href="xpack-ccr.html" title="Cross-cluster replication">cross-cluster replication</a> and <a class="xref" href="modules-cross-cluster-search.html" title="Search across clusters">cross-cluster search</a>.</p>
<p>Remote cluster connections work by configuring a remote cluster and connecting
to a limited number of nodes in that remote cluster. There are two modes for
remote cluster connections: <a class="xref" href="modules-remote-clusters.html#sniff-mode" title="Sniff mode">sniff mode</a> and
<a class="xref" href="modules-remote-clusters.html#proxy-mode" title="Proxy mode">proxy mode</a>.</p>
<p>All the communication required between different clusters
goes through the <a class="xref" href="modules-transport.html" title="Transport">transport layer</a>. Remote cluster
connections consist of uni-directional connections from the coordinating
node to the remote remote connections.</p>
<h3>
<a id="sniff-mode"></a>Sniff mode<a class="edit_me edit_me_private" rel="nofollow" title="Editing on GitHub is available to Elastic" href="https://github.com/elastic/elasticsearch/edit/7.7/docs/reference/modules/remote-clusters.asciidoc">edit</a>
</h3>
<p>In sniff mode, a cluster is created using a name and a list of seed nodes. When
a remote cluster is registered, its cluster state is retrieved from one of the
seed nodes and up to three <em>gateway nodes</em> are selected as part of remote
cluster requests. This mode requires that the gateway node’s publish addresses
are accessible by the local cluster.</p>
<p>Sniff mode is the default connection mode.</p>
<h4>
<a id="gateway-nodes-selection"></a>Gateway nodes selection<a class="edit_me edit_me_private" rel="nofollow" title="Editing on GitHub is available to Elastic" href="https://github.com/elastic/elasticsearch/edit/7.7/docs/reference/modules/remote-clusters.asciidoc">edit</a>
</h4>
<p>The <em>gateway nodes</em> selection depends on the following criteria:</p>
<div class="ulist itemizedlist">
<ul class="itemizedlist">
<li class="listitem">
<span class="strong strong"><strong>version</strong></span>: Remote nodes must be compatible with the cluster they are
registered to. This is subject to rules that are similar to those for
<a class="xref" href="rolling-upgrades.html" title="Rolling upgrades"><em>Rolling upgrades</em></a>. Any node can communicate with any other node on the same
major version (e.g. 7.0 can talk to any 7.x node). Only nodes on the last minor
version of a certain major version can communicate with nodes on the following
major version. Note that in the 6.x series, 6.8 can communicate with any 7.x
node, while 6.7 can only communicate with 7.0. Version compatibility  is
symmetric, meaning that if 6.7 can communicate with 7.0, 7.0 can also
communicate with 6.7. The matrix below summarizes compatibility as described above.
</li>
</ul>
</div>
<div class="informaltable">
<table border="1" cellpadding="4px">
<colgroup>
<col class="col_1">
<col class="col_2">
<col class="col_3">
<col class="col_4">
<col class="col_5">
<col class="col_6">
<col class="col_7">
<col class="col_8">
</colgroup>
<tbody>
<tr>
<td align="center" valign="top"><p>Compatibility</p></td>
<td align="center" valign="top"><p>5.0→5.5</p></td>
<td align="center" valign="top"><p>5.6</p></td>
<td align="center" valign="top"><p>6.0→6.6</p></td>
<td align="center" valign="top"><p>6.7</p></td>
<td align="center" valign="top"><p>6.8</p></td>
<td align="center" valign="top"><p>7.0</p></td>
<td align="center" valign="top"><p>7.1→7.x</p></td>
</tr>
<tr>
<td align="center" valign="top"><p>5.0→5.5</p></td>
<td align="center" valign="top"><p>Yes</p></td>
<td align="center" valign="top"><p>Yes</p></td>
<td align="center" valign="top"><p>No</p></td>
<td align="center" valign="top"><p>No</p></td>
<td align="center" valign="top"><p>No</p></td>
<td align="center" valign="top"><p>No</p></td>
<td align="center" valign="top"><p>No</p></td>
</tr>
<tr>
<td align="center" valign="top"><p>5.6</p></td>
<td align="center" valign="top"><p>Yes</p></td>
<td align="center" valign="top"><p>Yes</p></td>
<td align="center" valign="top"><p>Yes</p></td>
<td align="center" valign="top"><p>Yes</p></td>
<td align="center" valign="top"><p>Yes</p></td>
<td align="center" valign="top"><p>No</p></td>
<td align="center" valign="top"><p>No</p></td>
</tr>
<tr>
<td align="center" valign="top"><p>6.0→6.6</p></td>
<td align="center" valign="top"><p>No</p></td>
<td align="center" valign="top"><p>Yes</p></td>
<td align="center" valign="top"><p>Yes</p></td>
<td align="center" valign="top"><p>Yes</p></td>
<td align="center" valign="top"><p>Yes</p></td>
<td align="center" valign="top"><p>No</p></td>
<td align="center" valign="top"><p>No</p></td>
</tr>
<tr>
<td align="center" valign="top"><p>6.7</p></td>
<td align="center" valign="top"><p>No</p></td>
<td align="center" valign="top"><p>Yes</p></td>
<td align="center" valign="top"><p>Yes</p></td>
<td align="center" valign="top"><p>Yes</p></td>
<td align="center" valign="top"><p>Yes</p></td>
<td align="center" valign="top"><p>Yes</p></td>
<td align="center" valign="top"><p>No</p></td>
</tr>
<tr>
<td align="center" valign="top"><p>6.8</p></td>
<td align="center" valign="top"><p>No</p></td>
<td align="center" valign="top"><p>Yes</p></td>
<td align="center" valign="top"><p>Yes</p></td>
<td align="center" valign="top"><p>Yes</p></td>
<td align="center" valign="top"><p>Yes</p></td>
<td align="center" valign="top"><p>Yes</p></td>
<td align="center" valign="top"><p>Yes</p></td>
</tr>
<tr>
<td align="center" valign="top"><p>7.0</p></td>
<td align="center" valign="top"><p>No</p></td>
<td align="center" valign="top"><p>No</p></td>
<td align="center" valign="top"><p>No</p></td>
<td align="center" valign="top"><p>Yes</p></td>
<td align="center" valign="top"><p>Yes</p></td>
<td align="center" valign="top"><p>Yes</p></td>
<td align="center" valign="top"><p>Yes</p></td>
</tr>
<tr>
<td align="center" valign="top"><p>7.1→7.x</p></td>
<td align="center" valign="top"><p>No</p></td>
<td align="center" valign="top"><p>No</p></td>
<td align="center" valign="top"><p>No</p></td>
<td align="center" valign="top"><p>No</p></td>
<td align="center" valign="top"><p>Yes</p></td>
<td align="center" valign="top"><p>Yes</p></td>
<td align="center" valign="top"><p>Yes</p></td>
</tr>
</tbody>
</table>
</div>
<div class="ulist itemizedlist">
<ul class="itemizedlist">
<li class="listitem">
<span class="strong strong"><strong>role</strong></span>: Dedicated master nodes never get selected.
</li>
<li class="listitem">
<span class="strong strong"><strong>attributes</strong></span>: You can tag which nodes should be selected
(see <a class="xref" href="modules-remote-clusters.html#remote-cluster-settings" title="Remote cluster settings for all modes">Remote cluster settings for all modes</a>), though such tagged nodes still have
to satisfy the two above requirements.
</li>
</ul>
</div>
<h3>
<a id="proxy-mode"></a>Proxy mode<a class="edit_me edit_me_private" rel="nofollow" title="Editing on GitHub is available to Elastic" href="https://github.com/elastic/elasticsearch/edit/7.7/docs/reference/modules/remote-clusters.asciidoc">edit</a>
</h3>
<p>In proxy mode, a cluster is created using a name and a single proxy address. When
a remote cluster is registered, a configurable number of socket connections are
opened to the proxy address. The proxy is required to route those connections to
the remote cluster. Proxy mode does not require remote cluster nodes to have
accessible publish addresses.</p>
<p>The proxy mode is not the default connection mode and must be configured. Similar
to the sniff <a class="xref" href="modules-remote-clusters.html#gateway-nodes-selection" title="Gateway nodes selection">gateway nodes</a>, the remote
connections are subject to the same version compatibility rules as
<a class="xref" href="rolling-upgrades.html" title="Rolling upgrades"><em>Rolling upgrades</em></a>.</p>
<h4>
<a id="configuring-remote-clusters"></a>Configuring remote clusters<a class="edit_me edit_me_private" rel="nofollow" title="Editing on GitHub is available to Elastic" href="https://github.com/elastic/elasticsearch/edit/7.7/docs/reference/modules/remote-clusters.asciidoc">edit</a>
</h4>
<p>You can configure remote clusters globally by using
<a class="xref" href="cluster-update-settings.html" title="Cluster update settings API">cluster settings</a>, which you can update dynamically.
Alternatively, you can configure them locally on individual nodes by using the
 <code class="literal">elasticsearch.yml</code> file.</p>
<p>If you specify the settings in <code class="literal">elasticsearch.yml</code> files, only the nodes with
those settings can connect to the remote cluster. In other words, functionality
that relies on remote cluster requests must be driven specifically from those
nodes. For example:</p>
<div class="pre_wrapper lang-yaml">
<pre class="programlisting prettyprint lang-yaml">cluster:
    remote:
        cluster_one: <a id="CO30-1"></a><i class="conum" data-value="1"></i>
            seeds: 127.0.0.1:9300 <a id="CO30-2"></a><i class="conum" data-value="2"></i>
            transport.ping_schedule: 30s <a id="CO30-3"></a><i class="conum" data-value="3"></i>
        cluster_two: <a id="CO30-4"></a><i class="conum" data-value="1"></i>
            mode: sniff <a id="CO30-5"></a><i class="conum" data-value="4"></i>
            seeds: 127.0.0.1:9301 <a id="CO30-6"></a><i class="conum" data-value="2"></i>
            transport.compress: true <a id="CO30-7"></a><i class="conum" data-value="5"></i>
            skip_unavailable: true <a id="CO30-8"></a><i class="conum" data-value="6"></i>
        cluster_three: <a id="CO30-9"></a><i class="conum" data-value="1"></i>
            mode: proxy <a id="CO30-10"></a><i class="conum" data-value="4"></i>
            proxy_address: 127.0.0.1:9302 <a id="CO30-11"></a><i class="conum" data-value="7"></i></pre>
</div>
<div class="calloutlist">
<table border="0" summary="Callout list">
<tr>
<td align="left" valign="top" width="5%">
<p><a href="#CO30-1"><i class="conum" data-value="1"></i></a><a href="#CO30-4"></a><a href="#CO30-9"></a></p>
</td>
<td align="left" valign="top">
<p><code class="literal">cluster_one</code>, <code class="literal">cluster_two</code>, and <code class="literal">cluster_three</code> are arbitrary <em>cluster aliases</em>
representing the connection to each cluster. These names are subsequently used to
distinguish between local and remote indices.</p>
</td>
</tr>
<tr>
<td align="left" valign="top" width="5%">
<p><a href="#CO30-2"><i class="conum" data-value="2"></i></a><a href="#CO30-6"></a></p>
</td>
<td align="left" valign="top">
<p>The hostname and <a class="xref" href="modules-transport.html" title="Transport">transport</a> port (default: 9300) of a
seed node in the remote cluster.</p>
</td>
</tr>
<tr>
<td align="left" valign="top" width="5%">
<p><a href="#CO30-3"><i class="conum" data-value="3"></i></a></p>
</td>
<td align="left" valign="top">
<p>A keep-alive ping is configured for <code class="literal">cluster_one</code>.</p>
</td>
</tr>
<tr>
<td align="left" valign="top" width="5%">
<p><a href="#CO30-5"><i class="conum" data-value="4"></i></a><a href="#CO30-10"></a></p>
</td>
<td align="left" valign="top">
<p>The configured connection mode. By default, this is <a class="xref" href="modules-remote-clusters.html#sniff-mode" title="Sniff mode"><code class="literal">sniff</code></a>, so
the mode is implicit for <code class="literal">cluster_one</code>. However, it can be explicitly configured
as demonstrated by <code class="literal">cluster_two</code> and must be explicitly configured for
<a class="xref" href="modules-remote-clusters.html#proxy-mode" title="Proxy mode">proxy mode</a> as demonstrated by <code class="literal">cluster_three</code>.</p>
</td>
</tr>
<tr>
<td align="left" valign="top" width="5%">
<p><a href="#CO30-7"><i class="conum" data-value="5"></i></a></p>
</td>
<td align="left" valign="top">
<p>Compression is explicitly enabled for requests to <code class="literal">cluster_two</code>.</p>
</td>
</tr>
<tr>
<td align="left" valign="top" width="5%">
<p><a href="#CO30-8"><i class="conum" data-value="6"></i></a></p>
</td>
<td align="left" valign="top">
<p>Disconnected remote clusters are optional for <code class="literal">cluster_two</code>.</p>
</td>
</tr>
<tr>
<td align="left" valign="top" width="5%">
<p><a href="#CO30-11"><i class="conum" data-value="7"></i></a></p>
</td>
<td align="left" valign="top">
<p>The address for the proxy endpoint used to connect to <code class="literal">cluster_three</code>.</p>
</td>
</tr>
</table>
</div>
<p>For more information about the optional transport settings, see
<a class="xref" href="modules-transport.html" title="Transport">Transport</a>.</p>
<p>If you use <a class="xref" href="cluster-update-settings.html" title="Cluster update settings API">cluster settings</a>, the remote clusters
are available on every node in the cluster. For example:</p>
<div class="pre_wrapper lang-console">
<pre class="programlisting prettyprint lang-console">PUT _cluster/settings
{
  "persistent": {
    "cluster": {
      "remote": {
        "cluster_one": {
          "seeds": [
            "127.0.0.1:9300"
          ],
          "transport.ping_schedule": "30s"
        },
        "cluster_two": {
          "mode": "sniff",
          "seeds": [
            "127.0.0.1:9301"
          ],
          "transport.compress": true,
          "skip_unavailable": true
        },
        "cluster_three": {
          "mode": "proxy",
          "proxy_address": "127.0.0.1:9302"
        }
      }
    }
  }
}</pre>
</div>
<div class="console_widget" data-snippet="snippets/55.console"></div>
<p>You can dynamically update the compression and ping schedule settings. However,
you must re-include seeds or <code class="literal">proxy_address</code> in the settings update request.
For example:</p>
<div class="pre_wrapper lang-console">
<pre class="programlisting prettyprint lang-console">PUT _cluster/settings
{
  "persistent": {
    "cluster": {
      "remote": {
        "cluster_one": {
          "seeds": [
            "127.0.0.1:9300"
          ],
          "transport.ping_schedule": "60s"
        },
        "cluster_two": {
          "mode": "sniff",
          "seeds": [
            "127.0.0.1:9301"
          ],
          "transport.compress": false
        },
        "cluster_three": {
          "mode": "proxy",
          "proxy_address": "127.0.0.1:9302",
          "transport.compress": true
        }
      }
    }
  }
}</pre>
</div>
<div class="console_widget" data-snippet="snippets/56.console"></div>
<div class="note admon">
<div class="icon"></div>
<div class="admon_content">
<p>When the compression or ping schedule settings change, all the existing
node connections must close and re-open, which can cause in-flight requests to
fail.</p>
</div>
</div>
<p>A remote cluster can be deleted from the cluster settings by setting its settings to <code class="literal">null</code> :</p>
<div class="pre_wrapper lang-console">
<pre class="programlisting prettyprint lang-console">PUT _cluster/settings
{
  "persistent": {
    "cluster": {
      "remote": {
        "cluster_two": { <a id="CO31-1"></a><i class="conum" data-value="1"></i>
          "mode": null,
          "seeds": null,
          "skip_unavailable": null,
          "transport": {
            "compress": null
          }
        }
      }
    }
  }
}</pre>
</div>
<div class="console_widget" data-snippet="snippets/57.console"></div>
<div class="calloutlist">
<table border="0" summary="Callout list">
<tr>
<td align="left" valign="top" width="5%">
<p><a href="#CO31-1"><i class="conum" data-value="1"></i></a></p>
</td>
<td align="left" valign="top">
<p><code class="literal">cluster_two</code> would be removed from the cluster settings, leaving
<code class="literal">cluster_one</code> and <code class="literal">cluster_three</code> intact.</p>
</td>
</tr>
</table>
</div>
<h3>
<a id="remote-cluster-settings"></a>Remote cluster settings for all modes<a class="edit_me edit_me_private" rel="nofollow" title="Editing on GitHub is available to Elastic" href="https://github.com/elastic/elasticsearch/edit/7.7/docs/reference/modules/remote-clusters.asciidoc">edit</a>
</h3>
<p>These settings apply to both <a class="xref" href="modules-remote-clusters.html#sniff-mode" title="Sniff mode">sniff mode</a> and
<a class="xref" href="modules-remote-clusters.html#proxy-mode" title="Proxy mode">proxy mode</a>. <a class="xref" href="modules-remote-clusters.html#remote-cluster-sniff-settings" title="Remote cluster settings for sniff mode">Sniff mode settings</a>
and <a class="xref" href="modules-remote-clusters.html#remote-cluster-proxy-settings" title="Remote cluster settings for proxy mode">proxy mode settings</a> are described below.</p>
<div class="variablelist">
<dl class="variablelist">
<dt>
<span class="term">
<code class="literal">cluster.remote.&lt;cluster_alias&gt;.mode</code>
</span>
</dt>
<dd>
The mode used for a remote cluster connection. The only supported modes are
<code class="literal">sniff</code> and <code class="literal">proxy</code>.
</dd>
<dt>
<span class="term">
<code class="literal">cluster.remote.initial_connect_timeout</code>
</span>
</dt>
<dd>
The time to wait for remote connections to be established when the node
starts. The default is <code class="literal">30s</code>.
</dd>
<dt>
<span class="term">
<code class="literal">node.remote_cluster_client</code>
</span>
</dt>
<dd>
By default, any node in the cluster can act as a cross-cluster client and
connect to remote clusters. The <code class="literal">node.remote_cluster_client</code> setting can be
set to <code class="literal">false</code> (defaults to <code class="literal">true</code>) to prevent certain nodes from connecting
to remote clusters. Remote cluster requests must be sent to a node that is
allowed to act as a cross-cluster client.
</dd>
<dt>
<span class="term">
<code class="literal">cluster.remote.&lt;cluster_alias&gt;.skip_unavailable</code>
</span>
</dt>
<dd>
Per cluster boolean setting that allows to skip specific clusters when no
nodes belonging to them are available and they are the target of a remote
cluster request. Default is <code class="literal">false</code>, meaning that all clusters are mandatory
by default, but they can selectively be made optional by setting this setting
to <code class="literal">true</code>.
</dd>
<dt>
<span class="term">
<code class="literal">cluster.remote.&lt;cluster_alias&gt;.transport.ping_schedule</code>
</span>
</dt>
<dd>
Sets the time interval between regular application-level ping messages that
are sent to ensure that transport connections to nodes belonging to remote
clusters are kept alive. If set to <code class="literal">-1</code>, application-level ping messages to
this remote cluster are not sent. If unset, application-level ping messages
are sent according to the global <code class="literal">transport.ping_schedule</code> setting, which
defaults to <code class="literal">-1</code> meaning that pings are not sent.
</dd>
<dt>
<span class="term">
<code class="literal">cluster.remote.&lt;cluster_alias&gt;.transport.compress</code>
</span>
</dt>
<dd>
Per cluster boolean setting that enables you to configure compression for
requests to a specific remote cluster. This setting impacts only requests
sent to the remote cluster. If the inbound request is compressed,
Elasticsearch compresses the response. If unset, the global
<code class="literal">transport.compress</code> is used as the fallback setting.
</dd>
</dl>
</div>
<h3>
<a id="remote-cluster-sniff-settings"></a>Remote cluster settings for sniff mode<a class="edit_me edit_me_private" rel="nofollow" title="Editing on GitHub is available to Elastic" href="https://github.com/elastic/elasticsearch/edit/7.7/docs/reference/modules/remote-clusters.asciidoc">edit</a>
</h3>
<div class="variablelist">
<dl class="variablelist">
<dt>
<span class="term">
<code class="literal">cluster.remote.&lt;cluster_alias&gt;.seeds</code>
</span>
</dt>
<dd>
The list of seed nodes used to sniff the remote cluster state.
</dd>
<dt>
<span class="term">
<code class="literal">cluster.remote.&lt;cluster_alias&gt;.node_connections</code>
</span>
</dt>
<dd>
The number of gateway nodes to connect to for this remote cluster. The default
is <code class="literal">3</code>.
</dd>
<dt>
<span class="term">
<code class="literal">cluster.remote.node.attr</code>
</span>
</dt>
<dd>
A node attribute to filter out nodes that are eligible as a gateway node in
the remote cluster. For instance a node can have a node attribute
<code class="literal">node.attr.gateway: true</code> such that only nodes with this attribute will be
connected to if <code class="literal">cluster.remote.node.attr</code> is set to <code class="literal">gateway</code>.
</dd>
</dl>
</div>
<h3>
<a id="remote-cluster-proxy-settings"></a>Remote cluster settings for proxy mode<a class="edit_me edit_me_private" rel="nofollow" title="Editing on GitHub is available to Elastic" href="https://github.com/elastic/elasticsearch/edit/7.7/docs/reference/modules/remote-clusters.asciidoc">edit</a>
</h3>
<div class="variablelist">
<dl class="variablelist">
<dt>
<span class="term">
<code class="literal">cluster.remote.&lt;cluster_alias&gt;.proxy_address</code>
</span>
</dt>
<dd>
The address used for all remote connections.
</dd>
<dt>
<span class="term">
<code class="literal">cluster.remote.&lt;cluster_alias&gt;.proxy_socket_connections</code>
</span>
</dt>
<dd>
The number of socket connections to open per remote cluster. The default is
<code class="literal">18</code>.
</dd>
</dl>
</div>
<div class="variablelist">
<dl class="variablelist">
<dt>
<span class="term">
<code class="literal">cluster.remote.&lt;cluster_alias&gt;.server_name</code>
</span>
</dt>
<dd>
An optional hostname string which is sent in the <code class="literal">server_name</code> field of
the TLS Server Name Indication extension if
<a class="xref" href="configuring-tls.html" title="Encrypting communications in Elasticsearch">TLS is enabled</a>. The TLS transport will fail to open
remote connections if this field is not a valid hostname as defined by the
TLS SNI specification.
</dd>
</dl>
</div>
<h3>
<a id="retrieve-remote-clusters-info"></a>Retrieving remote clusters info<a class="edit_me edit_me_private" rel="nofollow" title="Editing on GitHub is available to Elastic" href="https://github.com/elastic/elasticsearch/edit/7.7/docs/reference/modules/remote-clusters.asciidoc">edit</a>
</h3>
<p>You can use the <a class="xref" href="cluster-remote-info.html" title="Remote cluster info API">remote cluster info API</a> to retrieve
information about the configured remote clusters, as well as the remote nodes
that the node is connected to.</p>
</div>
<div class="navfooter">
<span class="prev">
<a href="restart-cluster.html">« Full-cluster restart and rolling restart</a>
</span>
<span class="next">
<a href="setup-xpack.html">Set up X-Pack »</a>
</span>
</div>
</div>

                  <!-- end body -->
                </div>
                <div class="col-xs-12 col-sm-4 col-md-4" id="right_col">
                  <div id="rtpcontainer" style="display: block;">
                    <div class="mktg-promo">
                      <h3>Most Popular</h3>
                      <ul class="icons">
                        <li class="icon-elasticsearch-white"><a href="https://www.elastic.co/webinars/getting-started-elasticsearch?baymax=default&amp;elektra=docs&amp;storm=top-video">Get Started with Elasticsearch: Video</a></li>
                        <li class="icon-kibana-white"><a href="https://www.elastic.co/webinars/getting-started-kibana?baymax=default&amp;elektra=docs&amp;storm=top-video">Intro to Kibana: Video</a></li>
                        <li class="icon-logstash-white"><a href="https://www.elastic.co/webinars/introduction-elk-stack?baymax=default&amp;elektra=docs&amp;storm=top-video">ELK for Logs &amp; Metrics: Video</a></li>
                      </ul>
                    </div>
                  </div>
                </div>
              </div>
            </div>
          </section>

        </div>


<div id="elastic-footer"></div>
<script src="https://www.elastic.co/elastic-footer.js"></script>
<!-- Footer Section end-->

      </section>
    </div>

<script src="/guide/static/jquery.js"></script>
<script type="text/javascript" src="/guide/static/docs.js"></script>
<script type="text/javascript">
  window.initial_state = {}</script>
  </body>
</html>
